<?php
	// On prolonge la session
	session_start();

	$id_anim='';
	$code='';
	$message='';

	require_once('../../classes/database.php');
	$idconnect=Database::getInstance();
	
	//vérification des droits de l'utilisateur
	$querytest = pg_query($idconnect,"SELECT * FROM droit_utilisateur WHERE (id_droit=17 or id_droit=1 ) and id_user=".$_SESSION['membre_id']);
	$saise_comportement = pg_num_rows($querytest);
	if(isset($_SESSION['membre_id']) && $saise_comportement != 0){
		
		// On teste si la variable de session existe et contient une valeur
		if(empty($_SESSION['id_anim'])){
			// Si inexistante ou nulle, on redirige vers le formulaire de login
			header('Location: /base_mmdn/saisie.php');
			exit();
		}
		else{
			$id_anim=$_SESSION['id_anim'];
			$code=$_SESSION['code'];
		}
		
		// Remplissage de la base de données
		if(!empty($_POST)){
			//vérification que les champs ont bien été remplis
			if($_POST['date']=="none" || $_POST['exp']=="none" || $_POST['tests']=="none"){
				$message = 'Veuillez entrer les informations générales du test comportemental!';
			}
			else{
				$_POST['date'] = htmlspecialchars($_POST['date']);
				$_POST['exp'] = htmlspecialchars($_POST['exp']);
				$_POST['tests'] = htmlspecialchars($_POST['tests']);
				
				$test='';
				//récupération du nom du test
				if($_POST['tests']=="autre" && !(empty($_POST['autre_tests']))){$test = htmlspecialchars($_POST['autre_tests']);}
				else if($_POST['tests']!="autre"){$test = $_POST['tests'];}

				if(preg_match("#^\d\d\/\d\d\/\d\d\d\d$#",$_POST['date']) && $test!=''){
					$unite = array();
					//vérification si le nom test existe ou pas
					$query = pg_query($idconnect,"SELECT unite_mesure,id_type_test FROM type_test WHERE label='Test comportemental' AND
					description LIKE '%$test%' ");
					$nb = pg_num_rows($query);
					if($nb!=0){ //si le test existe
						while ($back = pg_fetch_assoc($query)) {
							$back['unite_mesure'] = htmlspecialchars($back['unite_mesure']);
							$unite[$back['unite_mesure']]=$back['id_type_test'];
						}
					}
					else{ //création de type_test
						if(!(empty($_POST['unite']))){
							$_POST['unite'] = htmlspecialchars($_POST['unite']);
							echo $test;
							$sql = pg_query($idconnect,"INSERT INTO type_test (label, description, unite_mesure) VALUES ('Test comportemental','$test',
							'".$_POST['unite']."') RETURNING id_type_test");
							$insert_row = pg_fetch_row($sql);
							$id_type_test = $insert_row[0];
							$unite['unite']=$id_type_test;
							$message .= "Test créé. ";
						}
					}

					foreach ($_POST as $cle=>$value){
						$cle=str_replace('_',' ',$cle);
						foreach($unite as $cle2=>$value2){
							if($cle==$cle2){
								//vérification de l'existance d'un test à cette date avec cet expérimentateur
								$query1 = pg_query($idconnect,"SELECT id_test FROM test WHERE date_test='".$_POST['date']."' AND experimentateur='".$_POST['exp']."'
								AND id_type_test=$value2");
								$nb1 = pg_num_rows($query1);
								if($nb1!=0){ // si une date de test avec cet expérimentateur existe déjà
									$back1 = pg_fetch_assoc($query1);
									$id_test = $back1['id_test'];
								}
								else{ //création de test
									$sql = pg_query($idconnect,"INSERT INTO test (id_type_test,date_test,experimentateur) VALUES ($value2,'".$_POST['date']."',
									'".$_POST['exp']."') RETURNING id_test");
									$insert_row = pg_fetch_row($sql);
									$id_test = $insert_row[0];
								}

								//vérification de l'existance de l'id_res
								$query2 = pg_query($idconnect,"SELECT id_res FROM resultat_test WHERE id_test=$id_test AND id_animal=$id_anim");
								$nb2 = pg_num_rows($query2);
								if($nb2!=0){ //si un id_res existe déjà
									$back2 = pg_fetch_assoc($query2);
									$id_res = $back2['id_res'];
								}
								else{ //création de l'id_res
									$sql = pg_query($idconnect,"INSERT INTO resultat_test (id_test,id_animal) VALUES ($id_test,$id_anim) RETURNING id_res");
									$insert_row = pg_fetch_row($sql);
									$id_res = $insert_row[0];
								}

								//vérification que resultat_test_simple est bien rempli
								$query3 = pg_query($idconnect,"SELECT * FROM resultat_test_simple WHERE id_res=$id_res");
								$nb3 = pg_num_rows($query3);
								if($nb3!=0){ //si le resultat_test_simple existe déjà seule la description sera mise à jour
									$back3 = pg_fetch_assoc($query3);
									if(!($back3['description'])){
										foreach ($_POST as $cle3=>$value3){
											$cle3 = str_replace('_',' ',$cle3);
											if($cle3=="$cle2 desc"){
												$sql = pg_query($idconnect,"UPDATE resultat_test_simple SET description='$value3' WHERE id_res=$id_res");
											}
										}
									}
									$message = "Test déjà enregistré dans la base, mise à jour. ";
								}
								else{ //création de resultat_test_simple
									$sql = pg_query($idconnect,"INSERT INTO resultat_test_simple (id_res,mesure) VALUES($id_res,'$value') RETURNING id_res");
									$insert_row = pg_fetch_row($sql);
									$id_res2 = $insert_row[0];
									foreach ($_POST as $cle3=>$value3){
										$cle3 = str_replace('_',' ',$cle3);
										if($cle3=="$cle2 desc" && $value3!=''){
											$sql = pg_query($idconnect,"UPDATE resultat_test_simple SET description='$value3' WHERE id_res=$id_res2");
										}
									}
									$message = "Test enregistré";
								}
							}
						}
					}
				}
				else{ $message.= "Date invalide";}
			}
		}
	}
	else{
		header('Location: ../../site.php');
		exit();
	}
?>

<!DOCTYPE html>
<html>
	<head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="../../style.css" />
		<!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <!--[if lte IE 7]>
        <link rel="stylesheet" href="style_ie.css" />
        <![endif]-->
        <title>Base de données microcèbes</title>

        <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
		<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
		<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
		<script src="../../js/oXHR.js"></script>
		<script src="../../js/date_picker.js"></script>
		<script src="../../js/verif_form.js"></script>
		<script src="comportement_s.js"></script>
    </head>

    <body>
		<?php include((dirname(dirname(dirname(__FILE__))))."/menu.php"); ?>

		<section id="main">
			<header>
				<h1>Saisie - Test comportemental animal <?php echo $code; ?></h1>
			</header>
			<?php include((dirname(dirname(__FILE__)))."/menu_saisie.php"); ?>
			<section id="animal">

				<section id="contenu">

				<form method="post" id="anim" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES); ?>" onsubmit="return verif_form(this)">
					<p>
						<label class="code2"><?php echo $message; ?></label><br/>
						<label>Sélectionnez un type de test:</label>
						<select id="tests" name="tests" onchange="request(this)">
							<option value="none">Sélection</option>
							<?php
								 //remplissage du select avec les nom de test comportemental enregistrés dans la base de données
								$query = pg_query($idconnect,"SELECT DISTINCT(description) FROM type_test WHERE label='Test comportemental' ORDER BY description");
								while ($back = pg_fetch_assoc($query)) {
									echo "<option value=\"" . $back["description"] . "\">" . $back["description"] . "</option>";
								}
							?>
							<option value="autre">Nouveau</option>
						</select><span class="code3" id="erreur_tests">* Sélectionner un type de test</span>
						<label class="autre">Précisez:</label><input type="text" class="autre" id="autre_tests" name="autre_tests">
						<span class="code3" id="erreur_autre_tests">* Remplir le champ</span><br/>
					</p>
					<p id="infos2" class="label5">
						<label class="label">Date du test:</label><input type="text" class="box" id="datepicker" name="date">
						<span class="code3" id="erreur_date">* Champ du type jj/mm/aaaa</span><br/>
						<label class="label">Expérimentateur:</label>
						<select name="exp" class="box">
							<option value="none">Sélection</option>
							<?php
								//remplissage du select avec la liste des utilisateurs inscrits
								$query = pg_query($idconnect,"SELECT DISTINCT (Prenom, Nom) as name FROM Utilisateur WHERE statut!='Visiteur' AND statut!='Collaborateur extérieur'");
								while ($back = pg_fetch_assoc($query)) {
									$temp =str_replace(',',' ',$back["name"]);
									$temp =str_replace('(','',$temp);
									$temp =str_replace(')','',$temp);
									echo "<option value=\"" . $temp."\">" . $temp."</option>\n";
								}
							?>
						</select><span class="code3" id="erreur_exp">* Sélectionner un expérimentateur</span>
					</p>
					<p class="autre">
						<label class="label">Unité de mesure:</label><input type="text" class="box" name="unite">
						<span class="code3" id="erreur_unite">* Remplir le champ</span><br/>
						<label class="label">Valeur de la mesure:</label><input type="text" class="box" name="mesure">
						<span class="code3" id="erreur_mesure">* Remplir le champ</span><br/>
						<label class="label">Description:</label><textarea class="box" name="description"></textarea><br/>
						<input type="submit" class="bouton" value="Valider le test">
					</p>
					<p id="infos" ></p>
					</form>
				</section>
			</section>

		</section>
	</body>
</html>
